home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / util / libs / graphics3d.lha / doc / graphics3d_E.doc < prev    next >
Encoding:
Text File  |  1998-10-17  |  40.7 KB  |  1,430 lines

  1. TABLE OF CONTENTS
  2.  
  3. graphics3d.library/GD_switch_rp
  4. graphics3d.library/GD_clipbox
  5. graphics3d.library/GD_over
  6. graphics3d.library/GD_display3d
  7. graphics3d.library/GD_close_display3d
  8. graphics3d.library/GD_changeviewmode
  9. graphics3d.library/GD_changeviewmodeobj
  10. graphics3d.library/GD_touchpalette
  11. graphics3d.library/GD_moveforward
  12. graphics3d.library/GD_viewangle
  13. graphics3d.library/GD_frustum
  14. graphics3d.library/GD_createlightsource
  15. graphics3d.library/GD_ambientlight
  16. graphics3d.library/GD_positioncamera
  17. graphics3d.library/GD_aspectratio
  18. graphics3d.library/GD_clipmode
  19. graphics3d.library/GD_newobj
  20. graphics3d.library/GD_deleteobject
  21. graphics3d.library/GD_addobjvertex
  22. graphics3d.library/GD_addobjpoly
  23. graphics3d.library/GD_cattpoly
  24. graphics3d.library/GD_setobj
  25. graphics3d.library/GD_getobj
  26. graphics3d.library/GD_translateobject
  27. graphics3d.library/GD_positionobject
  28. graphics3d.library/GD_scaleobject
  29. graphics3d.library/GD_rotateobject
  30. graphics3d.library/GD_pickobj
  31. graphics3d.library/GD_rgb4
  32. graphics3d.library/GD_paintframe
  33. graphics3d.library/GD_newview
  34. graphics3d.library/GD_recalcobj
  35. graphics3d.library/GD_cascene
  36. graphics3d.library/GD_int2fix
  37. graphics3d.library/GD_sfl2fix
  38. graphics3d.library/GD_dfl2fix
  39. graphics3d.library/GD_fix2int
  40. graphics3d.library/GD_fix2sfl
  41. graphics3d.library/GD_fix2dfl
  42.  
  43. graphics3d.library/GD_display3d                graphics3d.library/GD_display3d
  44.    NAME
  45.     GD_display3d  --  To initialize all ambient for the library. 
  46.    SYNOPSIS
  47.     ambient3d=GD_display3d(win, x0, y0, scrw, scrh, vdist)
  48.                            A0   D0  D1  D2    D3    D4
  49.     struct ambient3d *GD_display3d(struct Window*,LONG,LONG,LONG,LONG,LONG);
  50.  
  51.    FUNCTION
  52.     create and initialized the ambient3d structure that is the describer          of the 3d scene and is used us input from all other functions.
  53.  
  54.    INPUTS
  55.     win   = pointer to Window structure of the window where you want
  56.         viewer the 3d scene.
  57.     x0,y0 = coordinates of upper left corner of the box that define
  58.         the visualizations limits of the scene.  
  59.     scrw  = width of this box it must be a multiply af 16.
  60.     scrh  = height of this box.
  61.     vdist = distance from observer and proiection plane ,is expressed
  62.         as integer.
  63.    RESULT
  64.     ambient3d = pointer to ambient3d structure created, if it is equal 
  65.             to 0 than there is an error and the inizalization 
  66.             is aborted.
  67.  
  68.    BUGS
  69.     anyone note, if you find and tell me.
  70.  
  71.    NOTES
  72.     This function it must be use BEFORE all the other.
  73.     It can be used more than one time on the same program than storing 
  74.     separately the pointer returned, it possible to work simultaneously 
  75.     and independently an all the scenes so definited.
  76.     In the future perhaps I will make possible generate more scene of 
  77.     the same 3D space (for example to do more view) but all with the 
  78.     same memories areas for the objects definition .Now the library ever 
  79.     reallocate all areas and if the objects are much or complex it use 
  80.     very more memory. 
  81.  
  82.    SEE ALSO
  83.     GD_close_display3d
  84.  
  85. graphics3d.library/GD_close_display3d            graphics3d.library/GD_close_display3d
  86.    NAME
  87.     GD_close_display3d  --  erase all over the 3d scene viewing.
  88.  
  89.    SYNOPSIS
  90.     GD_close_display3d(in)
  91.                        A0
  92.     void GD_close_display3d(struct ambient3d *);
  93.  
  94.    FUNCTION
  95.     erase all that it was open and defined with GD_display3d included 
  96.     all objects of this scene.
  97.  
  98.    INPUTS
  99.     in = pointer to a ambient3d structure that you want delete.
  100.          If this pointer is 0 than it do nothing.
  101.  
  102.    RESULT
  103.  
  104.    BUGS
  105.     anyone note, if you find any tell me.
  106.  
  107.    NOTES
  108.     use it tipically at the end of the programm to erase all that is in 
  109.     relation with this library.
  110.  
  111.    SEE ALSO
  112.     GD_display3d
  113.  
  114. graphics3d.library/GD_changeviewmode            graphics3d.library/GD_changeviewmode
  115.    NAME
  116.     GD_changeviewmode  --  change the view mode of all objects
  117.  
  118.    SYNOPSIS
  119.     esi=GD_changeviewmode(in, modo, b_col)
  120.                           A0  D0    D1
  121.     LONG GD_changeviewmode(struct ambient3d *,LONG,LONG);
  122.  
  123.    FUNCTION
  124.     change simultaneously the view mode of ALL objects defined in the 
  125.     scene3d, for now is possible only this three view modes :
  126.     wire frame, solid shading and flat shading.
  127.  
  128.    INPUTS
  129.     in    = pointer to ambient3d structure of the 3d scene over there
  130.         you want work.
  131.         It must be greater than 0 otherwise the result is undefined.
  132.     modo  = new view mode :
  133.         0 -> wire frame              (use macro WIREF)
  134.             1 -> flat shading          (use macro FLAT)
  135.         2 -> solid shading          (use macro SOLID)
  136.         b_col = color register n# to use for the border of polygon of 
  137.         objects.
  138.         If it is minor than 0 than no border.
  139.  
  140.    RESULT
  141.     esi = result , if different than 0 all ok, if equal to 0 than error
  142.           operation aborted.
  143.    BUGS
  144.     anyone note, if you find any tell me.
  145.  
  146.    NOTES
  147.  
  148.    SEE ALSO
  149.     GD_changeviewmodeobj
  150.  
  151. graphics3d.library/GD_changeviewmodeobj            graphics3d.library/GD_changeviewmodeobj
  152.    NAME
  153.     GD_changeviewmodeobj  --  change the view mode of selected object
  154.  
  155.    SYNOPSIS
  156.     esi=GD_changeviewmodeobj(in, modo)
  157.                              A0  D0  
  158.     LONG GD_changeviewmodeobj(struct ambient3d *,LONG);
  159.  
  160.    FUNCTION
  161.     change the view mode of the actually selected object in the 3d scene
  162.     considered.
  163.  
  164.    INPUTS
  165.     in    = pointer to ambient3d structure of the 3d scene over there
  166.         you want work.
  167.         It must be greater than 0 otherwise the result is undefined.
  168.     modo  = new view mode :
  169.         0 -> wire frame              (use macro WIREF)
  170.             1 -> flat shading          (use macro FLAT)
  171.         2 -> solid shading          (use macro SOLID)
  172.  
  173.    RESULT
  174.     esi = result , if different than 0 all ok, if equal to 0 than error
  175.           operation aborted.
  176.    BUGS
  177.     really it wasn't tested now but I hope that it can work.
  178.  
  179.    NOTES
  180.  
  181.    SEE ALSO
  182.     GD_changeviewmode
  183.  
  184. graphics3d.library/GD_touchpalette            graphics3d.library/GD_touchpalette
  185.    NAME
  186.     GD_touchpalette  --  create a shaded color palette
  187.  
  188.    SYNOPSIS
  189.     GD_touchpalette(in, fr, lr, init_color, lastcolor)
  190.                     A0  D0  D1  A1          A2 
  191.     void GD_touchpalette(struct ambient3d *,LONG,LONG,struct rgbtype *,struct rgbtype *);
  192.  
  193.    FUNCTION
  194.     create a shaded color palette from two register color to use 
  195.     corrected the flat shading view mode.
  196.     
  197.    INPUTS
  198.     in         = pointer to ambient3d structure of the 3d scene over 
  199.              there you want work.
  200.              It must be greater than 0 otherwise the result is 
  201.              undefined.
  202.     fr         = first color register to set.
  203.         lr         = last color register to set.
  204.     init_color = pointer to rgbtype structure with initial RGB value 
  205.              of color.
  206.     lastcolor  = pointer to rgbtype structure with final RGB value 
  207.              of color.
  208.  
  209.    RESULT
  210.  
  211.    BUGS
  212.     anyone note, if you find any tell me.
  213.  
  214.    NOTES
  215.     the color assegned to the object will use us reference to 'fr' for 
  216.     the flat shading and it will be the darker shade , 'lr' the ligther 
  217.     shade.
  218.     It must be always used because the solid shading use the central 
  219.     shade us visualization color for polygons, using the object's color 
  220.     us reference to 'fr'. 
  221.  
  222.    SEE ALSO
  223.     GD_rgb4
  224.  
  225. graphics3d.library/GD_moveforward            graphics3d.library/GD_moveforward
  226.    NAME
  227.     GD_moveforward  --  move the observer
  228.  
  229.    SYNOPSIS
  230.     GD_moveforward(in, dist)
  231.                    A0  D0
  232.     void GD_moveforward(struct ambient3d *,LONG);
  233.  
  234.    FUNCTION
  235.     move the observer of dist units forward to the point of view.
  236.  
  237.    INPUTS
  238.     in   = pointer to ambient3d structure of the 3d scene over there
  239.            you want work.
  240.            It must be greater than 0 otherwise the result is undefined.
  241.     dist = n# of units of observer displacement ,it can be negative 
  242.            (move backward) but it must be in FIX POINT that is:
  243.         integer value * 256 (or FIXV) +
  244.            fractional value that will considered in 256 units.
  245.  
  246.    RESULT
  247.  
  248.    BUGS
  249.     anyone note, if you find any tell me.
  250.  
  251.    NOTES
  252.     The fix point values are makes so :
  253.     integer value*multiplier + fractional value.
  254.     Where multiplier is the point position ane is always equal, in
  255.     this library is = 256 (use macro FIXV).
  256.     ex.: the floating point number 10.2 in fix point it will be :
  257.         integer_portion * multiplier +
  258.         multiplier / inverse_fractional_portion
  259.         that is with multiplier equal to 256 (macro FIXV):
  260.         (10 * 256) + (256 / (1/0.2)) = 2611    
  261.     that is too :
  262.         float number * multiplier -> 10.2 * 256 = 2611    
  263.  
  264.    SEE ALSO
  265.     GD_viewangle, GD_positioncamera
  266.  
  267. graphics3d.library/GD_viewangle            graphics3d.library/GD_viewangle
  268.    NAME
  269.     GD_viewangle  --  gira l'osservatore
  270.  
  271.    SYNOPSIS
  272.     GD_viewangle(in ,ax ,ay ,az )
  273.                  A0  D0  D1  D2    
  274.     void GD_viewangle(struct ambient3d *,LONG,LONG,LONG);
  275.  
  276.    FUNCTION
  277.     permit of change the observer's angle of viewing.
  278.  
  279.    INPUTS
  280.     in = pointer to ambient3d structure of the 3d scene over there
  281.          you want work.
  282.          It must be greater than 0 otherwise the result is undefined.
  283.     ax = rotation value on X axis of observer.
  284.          it must be express in integer value (non fixpoint) and it
  285.          is used in sexagesimal(??) degrees (0-90-180-360..).
  286.     ay = rotation value on Y axis of observer.
  287.          it must be express in integer value (non fixpoint) and it
  288.          is used in sexagesimal(??) degrees (0-90-180-360..).
  289.     az = rotation value on Z axis of observer.
  290.          it must be express in integer value (non fixpoint) and it
  291.          is used in sexagesimal(??) degrees (0-90-180-360..).
  292.  
  293.    RESULT
  294.  
  295.    BUGS
  296.     anyone note, if you find any tell me.
  297.  
  298.    NOTES
  299.  
  300.    SEE ALSO
  301.     GD_moveforward, GD_positioncamera 
  302.  
  303. graphics3d.library/GD_frustum            graphics3d.library/GD_frustum
  304.    NAME
  305.     GD_frustum  --  set the planes that delimit the visible space.
  306.  
  307.    SYNOPSIS
  308.     GD_frustum(in ,near ,far )
  309.                A0  D0    D1
  310.     void GD_frustum(struct ambient3d *,LONG,LONG);
  311.  
  312.    FUNCTION
  313.     set the distance of planes that delimt the field of view ,
  314.     perpendicular at Z axis of observer.
  315.  
  316.    INPUTS
  317.     in   = pointer to ambient3d structure of the 3d scene over there
  318.            you want work.
  319.            It must be greater than 0 otherwise the result is undefined.
  320.     near = integer value (not fixpoint) distance of plane that signal
  321.            start of field of view of the defineted space.
  322.     far  = integer value (not fixpoint) distance of plane that signal
  323.            end of field of view of the defineted space.
  324.     
  325.    RESULT
  326.  
  327.    BUGS
  328.     anyone note, if you find any tell me.
  329.  
  330.    NOTES
  331.  
  332.    SEE ALSO
  333.     GD_clipmode
  334.  
  335. graphics3d.library/GD_createlightsource            graphics3d.library/GD_createlightsource
  336.    NAME
  337.     GD_createlightsource  --  place the light source in the space
  338.  
  339.    SYNOPSIS
  340.     GD_createlightsource(in ,x ,y ,z )
  341.                          A0  D0 D1 D2
  342.     void GD_createlightsource(struct ambient3d *,LONG,LONG,LONG);
  343.  
  344.    FUNCTION
  345.     create and place a light source in the space.
  346.  
  347.    INPUTS
  348.     in = pointer to ambient3d structure of the 3d scene over there
  349.          you want work.
  350.          It must be greater than 0 otherwise the result is undefined.
  351.     x  = X coordinate of the light as regards to space origin.
  352.          Value in fix point (see notes of GD_moveforward).
  353.     y  = Y coordinate of the light as regards to space origin.
  354.          Value in fix point (see notes of GD_moveforward).
  355.     z  = Z coordinate of the light as regards to space origin.
  356.          Value in fix point (see notes of GD_moveforward).
  357.  
  358.    RESULT
  359.  
  360.    BUGS
  361.     I suspect that not place corrected the light, I must verify it 
  362.     better.
  363.  
  364.    NOTES
  365.     Really this function do not create the light but only place it,
  366.     because it can exist only one and is present from the use of 
  367.     GD_display3d otherwise the flatshading can't run from the begging.
  368.     In the future pherhaps I can permit to use more than one and at 
  369.     this monent this function will can really create the light souces. 
  370.  
  371.    SEE ALSO
  372.     GD_ambientlight
  373.  
  374. graphics3d.library/GD_ambientlight            graphics3d.library/GD_ambientlight
  375.    NAME
  376.     GD_ambientlight  --  set the intensity of ambient light
  377.  
  378.    SYNOPSIS
  379.     GD_ambientlight(in ,inte )
  380.                     A0  D0
  381.     void GD_ambientlight(struct ambient3d *,LONG);
  382.  
  383.    FUNCTION
  384.     set the intensity of ambient light but NOT the color.
  385.  
  386.    INPUTS
  387.     in   = pointer to ambient3d structure of the 3d scene over there
  388.            you want work.
  389.            It must be greater than 0 otherwise the result is undefined.
  390.     inte = intensity value in fixpoint (see notes of GD_moveforward).
  391.  
  392.    RESULT
  393.  
  394.    BUGS
  395.  
  396.    NOTES
  397.     this function has effect only if you using the flat shading for now.
  398.  
  399.    SEE ALSO
  400.     GD_createlightsource
  401.  
  402. graphics3d.library/GD_positioncamera            graphics3d.library/GD_positioncamera
  403.    NAME
  404.     GD_positioncamera  --  observer  posizioning
  405.  
  406.    SYNOPSIS
  407.     GD_positioncamera(in ,x ,y ,z )
  408.                       A0  D0 D1 D2
  409.     void GD_positioncamera(struct ambient3d *,LONG,LONG,LONG);
  410.  
  411.    FUNCTION
  412.     place the observer as regards to space origin.
  413.  
  414.    INPUTS
  415.     in = pointer to ambient3d structure of the 3d scene over there
  416.          you want work.
  417.          It must be greater than 0 otherwise the result is undefined.
  418.     x  = X coordinate of the observer as regards to space origin.
  419.          Value in fix point (see notes of GD_moveforward).
  420.     y  = Y coordinate of the observer as regards to space origin.
  421.          Value in fix point (see notes of GD_moveforward).
  422.     z  = Z coordinate of the observer as regards to space origin.
  423.          Value in fix point (see notes of GD_moveforward).
  424.  
  425.    RESULT
  426.  
  427.    BUGS
  428.     anyone note, if you find any tell me.
  429.  
  430.    NOTES
  431.  
  432.    SEE ALSO
  433.     GD_moveforward, GD_viewangle
  434.  
  435. graphics3d.library/GD_aspectratio            graphics3d.library/GD_aspectratio
  436.    NAME
  437.     GD_aspectratio  --  change the aspect ratio
  438.  
  439.    SYNOPSIS
  440.     GD_aspectratio(in ,ratio )
  441.                    A0  D0
  442.     void GD_aspectratio(struct ambient3d *,LONG);
  443.  
  444.    FUNCTION
  445.     change the aspect ratio of visualized scene , by default is equal 
  446.     to 1:1.
  447.  
  448.    INPUTS
  449.     in    = pointer to ambient3d structure of the 3d scene over there
  450.         you want work.
  451.         It must be greater than 0 otherwise the result is undefined.
  452.     ratio = new value for aspect ratio so expressed, ex.: if 1:2 than 
  453.         is equal to 0.5.
  454.         Value in fix point (see notes of GD_moveforward).
  455.         
  456.    RESULT
  457.  
  458.    BUGS
  459.     anyone note, if you find any tell me.
  460.  
  461.    NOTES
  462.  
  463.    SEE ALSO
  464.  
  465. graphics3d.library/GD_clipmode            graphics3d.library/GD_clipmode
  466.    NAME
  467.     GD_clipmode  --  set a particular clip mode
  468.  
  469.    SYNOPSIS
  470.     GD_clipmode(in ,mode )
  471.                 A0  D0
  472.     void GD_clipmode(struct ambient3d *,LONG);
  473.     
  474.    FUNCTION
  475.     set the clipping node of the objects in the space ,between the two
  476.     availables:
  477.     ZETA PLANE : to clip the object it use the boundig box only on Z
  478.              axis as regards to planes near and far.
  479.     FRUSTUM    : to clip the object it use the bounding box on all 3
  480.              axis , the Z as regards to planes near and far , the
  481.              X and the Y as regards to max limits of visualization 
  482.              box.
  483.  
  484.    INPUTS
  485.     in   = pointer to ambient3d structure of the 3d scene over there
  486.            you want work.
  487.            It must be greater than 0 otherwise the result is undefined.
  488.     mode = integer value new clip mode :
  489.         0 - ZETA PLANE (use macro ZPLANE)
  490.         1 - FRUSTUM    (use macro FRUSTUM)
  491.  
  492.    RESULT
  493.  
  494.    BUGS
  495.     anyone note, if you find any tell me.
  496.  
  497.    NOTES
  498.  
  499.    SEE ALSO
  500.     GD_frustum
  501.  
  502. graphics3d.library/GD_pickobj            graphics3d.library/GD_pickobj
  503.    NAME
  504.     GD_pickobj  --  given a point identify polygon and object.
  505.  
  506.    SYNOPSIS
  507.     idobj=GD_pickobj(in ,np ,x ,y )
  508.                     A0  A1  D0 D1
  509.     LONG GD_pickobj(struct ambient3d *,LONG *,LONG,LONG);
  510.  
  511.    FUNCTION
  512.     given a point on the visualization window (then 2D) identify inside 
  513.     which poligon and which object behind those visibles in that moment ,
  514.     it are then if you not change the 2D point but change the viewing the
  515.     result can change.
  516.  
  517.    INPUTS
  518.     in = pointer to ambient3d structure of the 3d scene over there
  519.          you want work.
  520.          It must be greater than 0 otherwise the result is undefined.
  521.     np = pointer to an integer where place n# polygon find.
  522.          It will are a integer value that start from 0 but it will
  523.          valid only if the function result great than 0.
  524.     x  = integer value (not fix point) co-ordinate X as regards to the
  525.          visualization window of 3D scene.
  526.     y  = integer value (not fix point) co-ordinate Y as regards to the
  527.          visualization window of 3D scene.
  528.  
  529.    RESULT
  530.     integer value (not fix point) with univocal identifier of the object
  531.     where is place the point given.
  532.     If is equal to 0 the point is out of all object at that moment 
  533.     visualzed.
  534.  
  535.    BUGS
  536.     It can failed because not really found all point inside an object.
  537.  
  538.    NOTES
  539.     The used algoritm is totally empiric for speed reason and than not
  540.     found all point inside a poligon, but certainly those find are 
  541.     INSIDE the found poligon.
  542.     If anyone know algoritm more exact and can explain it to me will
  543.     are welcome.
  544.     For information this algoritm must can understand if a point is
  545.     inside or not to a triangle or quadrilateral(this is not exential)
  546.     but must do it faster as possible , because it will can tested 
  547.     hundred of polygon. 
  548.  
  549.    SEE ALSO
  550.     GD_setobj, GD_getobj
  551.  
  552. graphics3d.library/GD_newobj            graphics3d.library/GD_newobj
  553.    NAME
  554.     GD_newobj  --  create a new object
  555.  
  556.    SYNOPSIS
  557.     esi=GD_newobj(in ,name ,pol ,vert)
  558.                   A0  A2    D0   D1
  559.     LONG GD_newobj(struct ambient3d *,char *,LONG,LONG);
  560.  
  561.    FUNCTION
  562.     create and initialize the memories areas to generate a new object 
  563.     place it over the axis origin of the space and make it the actually 
  564.     selected.
  565.  
  566.    INPUTS
  567.     in   = pointer to ambient3d structure of the 3d scene over there
  568.            you want work.
  569.            It must be greater than 0 otherwise the result is undefined.
  570.     name = pointer to a string (0x00 terminated) with name object.
  571.     pol  = integer value with the total n# of poligons to assign at the
  572.            object.
  573.     vert = integer value with the total n# of vertices to assign at the
  574.            object.
  575.  
  576.    RESULT
  577.     if esi equal to 0 oparation failed, otherwise all ok and the returned
  578.     value is the identifier (univocal) of created object.    
  579.  
  580.    BUGS
  581.     anyone note, if you find any tell me.
  582.  
  583.    NOTES
  584.     remember that the so created object have the vertices and polygons
  585.     undefined than you must use the function GD_addobjvertex to
  586.     define the vertices , GD_addobjpoly and GD_cattpoly to define the
  587.     polygons and than GD_recalcobj to initialize correctly all internal
  588.     value.
  589.  
  590.    SEE ALSO
  591.     GD_deleteobject ,GD_addobjvertex ,GD_addobjpoly ,GD_recalcobj
  592.  
  593. graphics3d.library/GD_deleteobject            graphics3d.library/GD_deleteobject
  594.    NAME
  595.     GD_deleteobject  --  delete an object
  596.  
  597.    SYNOPSIS
  598.     GD_deleteobject(in)
  599.                     A0
  600.     void GD_deleteobject(struct ambient3d *);
  601.  
  602.    FUNCTION
  603.     erase an object and all memory areas that regards it than make 
  604.     the actually selected the previous, or if it is the first the next.
  605.  
  606.    INPUTS
  607.     in = pointer to ambient3d structure of the 3d scene over there
  608.          you want work.
  609.          It must be greater than 0 otherwise the result is undefined.
  610.  
  611.    RESULT
  612.  
  613.    BUGS
  614.     anyone note, if you find any tell me.
  615.  
  616.    NOTES
  617.     if there is no defined object than it end to do nothing.
  618.  
  619.    SEE ALSO
  620.     GD_newobj
  621.  
  622. graphics3d.library/GD_addobjvertex            graphics3d.library/GD_addobjvertex
  623.    NAME
  624.     GD_addobjvertex  --  add a vertex to the current object
  625.  
  626.    SYNOPSIS
  627.     esi=GD_addobjvertex(in ,num ,x ,y ,z )
  628.                         A0  D0   D1 D2 D3
  629.     LONG GD_addobjvertex(struct ambient3d *,LONG,LONG,LONG,LONG);
  630.  
  631.    FUNCTION
  632.     insert a vertex in the object actually selected to the position
  633.     pointing by num.    
  634.  
  635.    INPUTS
  636.     in  = pointer to ambient3d structure of the 3d scene over there
  637.           you want work.
  638.           It must be greater than 0 otherwise the result is undefined.
  639.     num = integer number pointing what vertex you want insert.
  640.           (#1->num=0 , #2->num=1 , ....).
  641.     x   = integer value X co-ordinate of vertex to insert.
  642.           Value in fix point (see notes of GD_moveforward).
  643.     y   = integer value Y co-ordinate of vertex to insert.
  644.           Value in fix point (see notes of GD_moveforward).
  645.     z   = integer value Z co-ordinate of vertex to insert.
  646.           Value in fix point (see notes of GD_moveforward).
  647.  
  648.    RESULT
  649.     if esi greather than 0 than all ok otherwise inserting aborted.
  650.  
  651.    BUGS
  652.     anyone note, if you find any tell me.
  653.     
  654.    NOTES
  655.     for now this function really only modified the vertex, because 
  656.     GD_newobj create all vertex yet but with unsense value.
  657.     In the future it is possible that it add really vertices.
  658.  
  659.    SEE ALSO
  660.     GD_newobj, GD_deleteobject ,GD_addobjpoly
  661.  
  662. graphics3d.library/GD_addobjpoly        graphics3d.library/GD_addobjpoly 
  663. NAME
  664.     GD_addobjpoly -- a polygon adds to running object
  665.  
  666. SYNOPSIS
  667.     esi=GD_addobjpoly(in, num,p1,p2,p3,p4) 
  668.                A0 D0  D1 D2 D3 D4 
  669.     LONG GD_addobjpoly(struct ambient3d *, LONG, LONG, LONG, LONG, LONG);
  670.  
  671. FUNCTION
  672.     inserts a polygon in the currently selected object to the
  673.     position indicated from num.  For polygon the directory of the three
  674.     or four apexes in hour sense agrees one or two that ne the chines
  675.     compose or apexes that compose the point or the line.
  676.  
  677. INPUTS 
  678.     in  = pointer to ambient3d structure of the 3d scene over there
  679.           you want work.
  680.           It must be greater than 0 otherwise the result is undefined.
  681.     num = entire number which polygon is becoming part.
  682.           (# 1->num=0, #2->num=1,ecc.). 
  683.     p1  = number index #1 apex polygon on directory apexes object.  
  684.     p2  = number index #2 apex polygon on directory apexes object.
  685.           In particular if this is equal to -1 then polygon with solo a
  686.           point that is designs a single point.
  687.     p3  = number index #3 apex polygon on directory apexes object.  
  688.           In particular if this is equal to -1 then polygon with solo 
  689.           two sides that is designs a segment.  
  690.     p4  = number index #4 apex polygon on directory apexes object.
  691.           In particular if this is equal to -1 then polygon with solo 
  692.           three sides.
  693.  
  694. RESULT 
  695.     if 0 greater then all ok otherwise bankrupt insertion.
  696.  
  697. BUGS 
  698.     anyone note, if you find any tell me.
  699.  
  700. NOTES 
  701.     is worth the same note made for GD_addobjvertex, ciois in realta 
  702.     does not join to a polygon but modification one already present.  
  703.     At least for hour in future perhaps.  
  704.  
  705. SEE ALSO 
  706.     GD_newobj, GD_deleteobject, GD_addobjvertex,
  707.  
  708. graphics3d.library/GD_cattpoly            graphics3d.library/GD_cattpoly
  709.    NAME
  710.     GD_cattpoly  --  change polygon attributes    
  711.  
  712.    SYNOPSIS
  713.     esi=GD_cattpoly(in ,num ,color ,twoside )
  714.                     A0  D0   D1     D2
  715.     LONG GD_cattpoly(struct ambient3d *,LONG,LONG,LONG);
  716.  
  717.    FUNCTION
  718.     change the features of polygon pointing by num in the actually 
  719.     selected object.
  720.  
  721.    INPUTS
  722.     in      = pointer to ambient3d structure of the 3d scene over there
  723.           you want work.
  724.           It must be greater than 0 otherwise the result is 
  725.           undefined.
  726.     num     = integer number pointing what polygon you want change.
  727.           (#1->num=0 , #2->num=1 , ....).
  728.     color   = integer number for base color of polygon.
  729.           For FLAT visualization will use the next color to shade to
  730.            tones more light.    
  731.     twoside = integer number to show if poligon with two sides (1) or
  732.           with only one side (0).
  733.           If with two sides that is with back and front side than
  734.           it will are ever visible.
  735.           If with only one side than it will are visible only the
  736.           side that see to out of the object and to the observer.
  737.           This is a fast metod to reduce the n# of polygons in the
  738.           3d scene.
  739.  
  740.    RESULT
  741.     if esi greather than 0 than all ok otherwise inserting aborted.
  742.  
  743.    BUGS
  744.     anyone note, if you find any tell me.
  745.  
  746.    NOTES
  747.  
  748.    SEE ALSO
  749.     GD_addobjpoly
  750.  
  751. graphics3d.library/GD_recalcobj            graphics3d.library/GD_recalcobj
  752.    NAME
  753.     GD_recalcobj  --  recalc the fixed parameter of the object
  754.  
  755.    SYNOPSIS
  756.     GD_recalcobj(in )
  757.                  A0
  758.     void GD_recalcobj(struct ambient3d *);
  759.  
  760.    FUNCTION
  761.     recalc any parameter usually not variable of actually selected object
  762.     (as the bounding box) it must be run only if it is change the 
  763.     co-ordinates of one or more vetices.
  764.  
  765.    INPUTS
  766.     in   = pointer to ambient3d structure of the 3d scene over there
  767.            you want work.
  768.            It must be greater than 0 otherwise the result is undefined.
  769.  
  770.    RESULT
  771.     
  772.    BUGS
  773.     anyone note, if you find any tell me.
  774.  
  775.    NOTES
  776.     This functions it must be used ever after the and of definition of 
  777.     a new object. 
  778.     That is after use of GD_newobj,GD_addobjvertex,GD_addobjpoly.
  779.     
  780.    SEE ALSO
  781.     GD_newobj ,GD_addobjvertex ,GD_addobjpoly 
  782.  
  783. graphics3d.library/GD_setobj            graphics3d.library/GD_setobj
  784.    NAME
  785.     GD_setobj  --  set as actually selacted an object
  786.  
  787.    SYNOPSIS
  788.     esi=GD_setobj(in ,num )
  789.                   A0  D0
  790.     LONG GD_setobj(struct ambient3d *,LONG);
  791.  
  792.    FUNCTION
  793.     It set as actually selected object that pointing by identifier 
  794.     in num.
  795.  
  796.    INPUTS
  797.     in  = pointer to ambient3d structure of the 3d scene over there
  798.           you want work.
  799.           It must be greater than 0 otherwise the result is undefined.
  800.     num = integer number with identifier if object that will be set.
  801.  
  802.    RESULT
  803.     if esi greather than 0 than all ok otherwise inserting aborted.
  804.  
  805.    BUGS
  806.     anyone note, if you find any tell me.
  807.  
  808.    NOTES
  809.  
  810.    SEE ALSO
  811.     GD_getobj
  812.  
  813. graphics3d.library/GD_getobj            graphics3d.library/GD_getobj
  814.    NAME
  815.     GD_getobj  --  return identifier of an object
  816.  
  817.    SYNOPSIS
  818.     id=GD_getobj(in)
  819.                  A0
  820.     LONG GD_getobj(struct ambient3d *);
  821.  
  822.    FUNCTION
  823.     return identifier of actually selected object.
  824.  
  825.    INPUTS
  826.     in = pointer to ambient3d structure of the 3d scene over there
  827.          you want work.
  828.          It must be greater than 0 otherwise the result is undefined.
  829.  
  830.    RESULT
  831.     if id greather than 0 than object's identifier otherwise no one 
  832.     actually selected.
  833.  
  834.    BUGS
  835.     anyone note, if you find any tell me.
  836.  
  837.    NOTES
  838.  
  839.    SEE ALSO
  840.     GD_setobj
  841.  
  842. graphics3d.library/GD_close_display3d            graphics3d.library/GD_close_display3d
  843.    NAME
  844.     GD_rgb4  --  change a register colour in the palette
  845.  
  846.    SYNOPSIS
  847.     GD_rgb4(in ,nr ,red ,green ,blue )
  848.             A0  D0  D1   D2     D3
  849.     void GD_rgb4(struct ambient3d *,LONG,LONG,LONG,LONG);
  850.  
  851.    FUNCTION
  852.     change the register colour point in the screen palette where is 
  853.     visualized the window with the 3d scene.
  854.  
  855.    INPUTS
  856.     in    = pointer to ambient3d structure of the 3d scene over there
  857.         you want work.
  858.         It must be greater than 0 otherwise the result is undefined.
  859.     nr    = number of register colour to change.
  860.     red   = new value for red (0-15).
  861.     green = new value for green (0-15).
  862.     blue  = new value for blue (0-15).
  863.  
  864.    RESULT
  865.  
  866.    BUGS
  867.     anyone note, if you find any tell me.
  868.  
  869.    NOTES
  870.  
  871.    SEE ALSO
  872.     GD_touchpalette
  873.  
  874. graphics3d.library/GD_paintframe            graphics3d.library/GD_paintframe
  875.    NAME
  876.     GD_paintframe  --  really paint all poligons
  877.     
  878.    SYNOPSIS
  879.     rast=GD_paintframe(in)
  880.                        A0
  881.     struct RastPort *GD_paintframe(struct ambient3d *);
  882.  
  883.    FUNCTION
  884.     really paint all poligons really visible in the current view but not
  885.     visualized them.
  886.  
  887.    INPUTS
  888.     in = pointer to ambient3d structure of the 3d scene over there
  889.          you want work.
  890.          It must be greater than 0 otherwise the result is undefined.
  891.  
  892.    RESULT
  893.     pointer to RastPort used to paint the poligons (is not visible), it
  894.     can be used as pointer for other graphics function if this used the
  895.     layers (used for clipping) otherwise aspected a big crash.
  896.     Moreover this rasport have as origin, width and height the orginal
  897.     value setting with GD_display3d and not those eventually change 
  898.     with GD_clipbox.
  899.  
  900.    BUGS
  901.     anyone note, if you find any tell me.
  902.  
  903.    NOTES
  904.     To erase the hidden faces, before to paint the polygons it 
  905.     reorganize them on base of their average point Z distance from 
  906.     the observer .
  907.     Unfortunately this algoritm can wrong on case of intersection. 
  908.  
  909.    SEE ALSO
  910.     GD_newview ,GD_switch_rp
  911.  
  912. graphics3d.library/GD_newview            graphics3d.library/GD_newview
  913.    NAME
  914.     GD_newview  --  recalc the actual view of the 3d scene
  915.  
  916.    SYNOPSIS
  917.     GD_newview(in)
  918.                A0
  919.     void GD_newview(struct ambient3d *);
  920.  
  921.    FUNCTION
  922.     recalc the list of polygons really visible in the actual view than 
  923.     projet them on the plane projection.
  924.  
  925.    INPUTS
  926.     in = pointer to ambient3d structure of the 3d scene over there
  927.          you want work.
  928.          It must be greater than 0 otherwise the result is undefined.
  929.  
  930.    RESULT
  931.  
  932.    BUGS
  933.     anyone note, if you find any tell me.
  934.  
  935.    NOTES
  936.     this function must be used if you want see the effect of 
  937.     trasformation on the object.
  938.     After that you have run this you must run GD_paintframe() to paint 
  939.     the polygons and than GD_switch_rp() to visualized them.
  940.  
  941.    SEE ALSO
  942.     GD_paintframe ,GD_switch_rp
  943.  
  944. graphics3d.library/GD_switch_rp            graphics3d.library/GD_switch_rp
  945.    NAME
  946.     GD_switch_rp  --  visualize the view painting with GD_paintframe()
  947.  
  948.    SYNOPSIS
  949.     GD_switch_rp(in)
  950.                  A0
  951.     void GD_switch_rp(struct ambient3d *);
  952.  
  953.    FUNCTION
  954.     visualize the view make with GD_paintframe and the addition make          after.
  955.  
  956.    INPUTS
  957.     in = pointer to ambient3d structure of the 3d scene over there
  958.          you want work.
  959.          It must be greater than 0 otherwise the result is undefined.
  960.  
  961.    RESULT
  962.  
  963.    BUGS
  964.     anyone note, if you find any tell me.
  965.  
  966.    NOTES
  967.     To do the visualization I use the ClipBlit function to copy the 
  968.     rastport used by GD_paintframe to the rastport of visualization 
  969.     window, with this sistem I can eliminate all(almost) the flikering 
  970.     that there is if I paint the polygons directly on the rastport of 
  971.     window.
  972.     I have try to use BltBitMap instead of ClipBlit because it appear 
  973.     to be faster , but on my machines sometimes make a beautiful crash.
  974.     Than for now I use ClipBlit , but I accept suggest to resolve the 
  975.     problem.
  976.  
  977.    SEE ALSO
  978.     GD_paintframe ,GD_newview
  979.  
  980. graphics3d.library/GD_translateobject            graphics3d.library/GD_translateobject
  981.    NAME
  982.     GD_translateobject  --  relative move of an object's origin 
  983.  
  984.    SYNOPSIS
  985.     GD_translateobject(in ,dx ,dy ,dz)
  986.                        A0  D0  D1  D2
  987.     void GD_translateobject(struct ambient3d *,LONG,LONG,LONG);
  988.     
  989.    FUNCTION
  990.     move the origin of actually selected object in relative mode as 
  991.     regards to the origin of 3d scene.
  992.  
  993.    INPUTS
  994.     in = pointer to ambient3d structure of the 3d scene over there
  995.          you want work.
  996.          It must be greater than 0 otherwise the result is undefined.
  997.     dx = value of displacement object's origin on axis X.
  998.          Value in fix point (see notes of GD_moveforward).
  999.     dy = value of displacement object's origin on axis Y.
  1000.          Value in fix point (see notes of GD_moveforward).
  1001.     dz = value of displacement object's origin on axis Z.
  1002.          Value in fix point (see notes of GD_moveforward).
  1003.  
  1004.    RESULT
  1005.  
  1006.    BUGS
  1007.     anyone note, if you find any tell me.
  1008.  
  1009.    NOTES
  1010.     for any run of this function make a permanent move , ex: 
  1011.     two displacement of two units on axis X are equal to one of 4.
  1012.  
  1013.    SEE ALSO
  1014.     GD_positionobject
  1015.  
  1016. graphics3d.library/GD_positionobject            graphics3d.library/GD_positionobject
  1017.    NAME
  1018.     GD_positionobject  --  absolute move of an object's origin 
  1019.  
  1020.    SYNOPSIS
  1021.     GD_positionobject(in ,x ,y ,z )
  1022.                       A0  D0 D1 D2
  1023.     void GD_positionobject(struct ambient3d *,LONG,LONG,LONG);
  1024.  
  1025.    FUNCTION
  1026.     move the origin of actually selected object in absolute mode as 
  1027.     regards to the origin of 3d scene.
  1028.     
  1029.    INPUTS
  1030.     in = pointer to ambient3d structure of the 3d scene over there
  1031.          you want work.
  1032.          It must be greater than 0 otherwise the result is undefined.
  1033.     x  = new value of object's origin on axis X.
  1034.          Value in fix point (see notes of GD_moveforward).
  1035.     y  = new value of object's origin on axis Y.
  1036.          Value in fix point (see notes of GD_moveforward).
  1037.     z  = new value of object's origin on axis Z.
  1038.          Value in fix point (see notes of GD_moveforward).
  1039.  
  1040.    RESULT
  1041.  
  1042.    BUGS
  1043.     anyone note, if you find any tell me.
  1044.  
  1045.    NOTES
  1046.  
  1047.    SEE ALSO
  1048.     GD_translateobject
  1049.  
  1050. graphics3d.library/GD_scaleobject            graphics3d.library/GD_scaleobject
  1051.    NAME
  1052.     GD_scaleobject  --  rescale an object
  1053.  
  1054.    SYNOPSIS
  1055.     GD_scaleobject(in ,xscale_fact,yscale_fact,zscalefact)
  1056.                    A0  D0          D1          D2
  1057.     void GD_scaleobject(struct ambient3d *,LONG,LONG,LONG);    
  1058.  
  1059.    FUNCTION
  1060.     rescale the actually selected object as regards the axes of your 
  1061.     origin but not permanently (have effect only on actual frame).
  1062.  
  1063.    INPUTS
  1064.     in           = pointer to ambient3d structure of the 3d scene over 
  1065.         there you want work.
  1066.         It must be greater than 0 otherwise the result is undefined.
  1067.     xscale_fact  = value of scale factor of object's axis X.
  1068.         Value in fix point (see notes of GD_moveforward).
  1069.     yscale_fact  = value of scale factor of object's axis Y.
  1070.         Value in fix point (see notes of GD_moveforward).
  1071.     zscale_fact  = value of scale factor of object's axis Z.
  1072.         Value in fix point (see notes of GD_moveforward).
  1073.  
  1074.    RESULT
  1075.  
  1076.    BUGS
  1077.     anyone note, if you find any tell me.
  1078.  
  1079.    NOTES
  1080.     any time you use this function the scaling will are applied on the
  1081.     origin dimension of object, then if you want rescale more time the 
  1082.     object the scale_factor must be change consequently.
  1083.     Ex: two rescale on axis X of two time is equal to only one of two
  1084.         to time (not 4 as it can appear).
  1085.     Note that it is really for combination of scale and rotation ,that is
  1086.     for gradual varation it necessary reapply both trasformation with
  1087.     their value to the object before run the GD_newview.
  1088.  
  1089.    SEE ALSO
  1090.     GD_rotateobject
  1091.  
  1092. graphics3d.library/GD_rotateobject            graphics3d.library/GD_rotateobject
  1093.    NAME
  1094.     GD_rotateobject  --  rotate an object
  1095.  
  1096.    SYNOPSIS
  1097.     GD_rotateobject(in ,angle_x ,angle_y ,angle_z)
  1098.                     A0  D0       D1       D2        
  1099.     void GD_rotateobject(struct ambient3d *,LONG,LONG,LONG);
  1100.  
  1101.    FUNCTION
  1102.     rotate the actually selected object as regards the axes of your 
  1103.     origin but not permanently (have effect only on actual frame).
  1104.  
  1105.    INPUTS
  1106.     in      = pointer to ambient3d structure of the 3d scene over there
  1107.           you want work.
  1108.           It must be greater than 0 otherwise the result is 
  1109.           undefined.
  1110.     angle_x = integer (not fix point) value sexagesimal degrees that
  1111.           tell the rotation angle on object's X axis. 
  1112.     angle_y = integer (not fix point) value sexagesimal degrees that
  1113.           tell the rotation angle on object's Y axis. 
  1114.     angle_z = integer (not fix point) value sexagesimal degrees that
  1115.           tell the rotation angle on object's Z axis. 
  1116.  
  1117.    RESULT
  1118.  
  1119.    BUGS
  1120.     anyone note, if you find any tell me.
  1121.  
  1122.    NOTES
  1123.     this trasformation is always refered to the original position of 
  1124.     object as the GD_scaleobject.
  1125.     For major explanation see NETES of GD_scaleobject.
  1126.  
  1127.    SEE ALSO
  1128.     GD_scaleobject
  1129.  
  1130. graphics3d.library/GD_clipbox            graphics3d.library/GD_clipbox
  1131.    NAME
  1132.     GD_clipbox  --  change the size of visualzition box.
  1133.  
  1134.    SYNOPSIS
  1135.     esi=GD_clipbox(in ,minx ,miny ,dx ,dy )
  1136.                    A0  D0    D1    D2  D3
  1137.     LONG GD_clipbox(struct ambient3d *,LONG,LONG,LONG,LONG)
  1138.  
  1139.    FUNCTION
  1140.     change the dimensions of the box that delimit the visualization 
  1141.     area of 3d scene.
  1142.  
  1143.    INPUTS
  1144.     in   = pointer to ambient3d structure of the 3d scene over there
  1145.            you want work.
  1146.            It must be greater than 0 otherwise the result is undefined.
  1147.     minx = X co-ordinate of box left upper edge, as regards to the
  1148.            visualization window. 
  1149.     miny = Y co-ordinate of box left upper edge, as regards to the
  1150.            visualization window. 
  1151.     dx   = width value of box it must be a multiply of 16.
  1152.     dy   = height value of box.
  1153.  
  1154.    RESULT
  1155.     if esi greather than 0 than all ok and is the real value used for dx 
  1156.     otherwise change aborted.
  1157.  
  1158.    BUGS
  1159.     anyone note, if you find any tell me.
  1160.  
  1161.    NOTES
  1162.     warning, you can't exceed the orginal dimension of visualization 
  1163.     box defined by GD_display3d otherwise it can crash the system.
  1164.     This function don't make any verify for this. 
  1165.     This limit is not more valid for the _CPU version of library.
  1166.  
  1167.    SEE ALSO
  1168.     GD_display3d
  1169.  
  1170. graphics3d.library/GD_over            graphics3d.library/GD_over
  1171.    NAME
  1172.     GD_over  --  change the draw mode in the hidden rastport
  1173.  
  1174.    SYNOPSIS
  1175.     GD_over(in, mod )
  1176.             A0  D0
  1177.     void GD_over(struct ambient3d *,LONG);
  1178.  
  1179.    FUNCTION
  1180.     change the draw mode in the rastport used by GD_paintframe but not 
  1181.     influence it.
  1182.  
  1183.    INPUTS
  1184.     in  = pointer to ambient3d structure of the 3d scene over there
  1185.           you want work.
  1186.           It must be greater than 0 otherwise the result is undefined.
  1187.     mod = new draw mode between this :
  1188.         0 = JAM1 (use macro JAM1)
  1189.         1 = JAM2 (use macro JAM2)
  1190.         2 = COMPLEMENT (use macro COMPLEMENT)
  1191.         4 = INVERSVID (use macro INVERSVID)
  1192.  
  1193.    RESULT
  1194.  
  1195.    BUGS
  1196.     anyone note, if you find any tell me.
  1197.  
  1198.    NOTES
  1199.  
  1200.    SEE ALSO
  1201.  
  1202. graphics3d.library/GD_cascene            graphics3d.library/GD_cascene
  1203.  
  1204. NAME 
  1205.     GD_cascene -- it varies some parameters of visualization of scene 3d 
  1206.  
  1207. SYNOPSIS 
  1208.     GD_cascene(in, new) 
  1209.            A0  A1 
  1210.     LONG GD_cascene(struct ambient3d *, struct tag3d *); 
  1211.  
  1212. FUNCTION 
  1213.     Permette to vary some parameters of visualization of the defined 
  1214.     scene 3d with dislplay3d.  
  1215.  
  1216. INPUTS 
  1217.     in  = pointer to ambient3d structure of the 3d scene over there
  1218.           you want work.
  1219.           It must be greater than 0 otherwise the result is undefined.
  1220.     new = pointer to Array of structures tag3d with new parameters, 
  1221.           works in the same way of the TagList implemented in the system
  1222.           bookcases.  
  1223.           For the moment the possible values are:  
  1224.           CS_PROJECT - type of projection to use, usable values:  
  1225.                Perspective PROSP_P=proiezione (the current one).
  1226.                PARAL_P=proiezione parallel (experimental).  
  1227.           CS_SBUFF   - still not implemented.  
  1228.           CS_GCOLOR  - n # registry color background scene 3d (default 
  1229.                n#0).  
  1230.           CS_VDIST   - new value (entire not fix) for distance between 
  1231.                observer and plan of projection.  
  1232.           CS_NPX0    - val. entire (not fix) with new origin X box in 
  1233.                the window.  
  1234.           CS_NPY0    - val. entire (not fix) with new origin Y box in 
  1235.                the window.
  1236.  
  1237. RESULT 
  1238.     0 equal if to no carried out variation, if > 0 then indicate number 
  1239.     of carried out variations.  
  1240.  
  1241. BUGS 
  1242.     anyone note, if you find any tell me.
  1243.  
  1244. NOTES
  1245.     Trattare the Array of structures tag3d exactly as the Array of said
  1246.     TagItem structures also tag list implemented in the operating system
  1247.     Amiga from the 2.0 in then.  The last structure of the Array must be
  1248.     empty and must have as first element constant END_T.  
  1249.     NOT TO DIRECTLY USE NEVER IN THE FIRST VALUE THE LABEL THE ALWAYS 
  1250.     USED NUMBERS BUT THAT INDICATE THEM.  
  1251.  
  1252. SEE ALSO
  1253.     
  1254. graphics3d.library/GD_fix2int            graphics3d.library/GD_fix2int 
  1255.  
  1256. NAME
  1257.     GD_fix2int -- a number fix point in an entire one converts.  
  1258.  
  1259. SYNOPSIS
  1260.     GD_fix2int(in, out) 
  1261.           A0  A1 
  1262.     LONG GD_fix2int(LONG *, LONG *) 
  1263.  
  1264. FUNCTION
  1265.     converts a number fix point in the format of the bookcase in an 
  1266.     entire one to 32bit approximating to the entire one piu' close.  
  1267.  
  1268. INPUTS 
  1269.     in  = pointer to a 32 bit entire with value fix point converting 
  1270.     out = pointer to a 32 bit entire where to put turned out.
  1271.  
  1272. RESULT
  1273.     0 equal if to all ok if various from 0 not modified error and out.  
  1274.  
  1275. BUGS 
  1276.     anyone note, if you find any tell me.
  1277.  
  1278. NOTES 
  1279.  
  1280. SEE ALSO 
  1281.     GD_fix2sfl, GD_fix2dfl 
  1282.  
  1283. graphics3d.library/GD_fix2sfl            graphics3d.library/GD_fix2sfl
  1284.  
  1285. NAME 
  1286.     GD_fix2sfl -- a number fix point in a single float converts.
  1287.  
  1288. SYNOPSIS 
  1289.     GD_fix2sfl(in, out) 
  1290.            A0  A1 
  1291.     LONG GD_fix2sfl(LONG *, float *);
  1292.  
  1293. FUNCTION 
  1294.     converts a number fix point in the format of the bookcase in
  1295.     a float in single precision.  
  1296.  
  1297. INPUTS 
  1298.     in  = pointer to a 32 bit entire with value fix point converting 
  1299.     out = pointer to number single float where to put turned out.  
  1300.  
  1301. RESULT 
  1302.     0 equal if to all ok if various from 0 not modified error and out.  
  1303.  
  1304. BUGS 
  1305.     anyone note, if you find any tell me.
  1306.  
  1307. NOTES 
  1308.  
  1309. SEE ALSO 
  1310.     GD_fix2int, GD_fix2dfl
  1311.  
  1312. graphics3d.library/GD_fix2dfl            graphics3d.library/GD_fix2dfl
  1313.  
  1314. NAME
  1315.     GD_fix2dfl -- a number fix point in a double float converts.  
  1316.  
  1317. SYNOPSIS
  1318.     GD_fix2dfl(in, out) 
  1319.            A0  A1 
  1320.     LONG GD_fix2dfl(LONG *, double *);
  1321.  
  1322. FUNCTION
  1323.     converts a number fix point in the format of the bookcase in a 
  1324.     float in double precision.  
  1325.  
  1326. INPUTS 
  1327.     in  = pointer to a 32 bit entire with value fix point converting 
  1328.     out = pointer to number double float where to put turned out.  
  1329.  
  1330. RESULT 
  1331.     0 equal if to all ok if various from 0 not modified error and out.  
  1332.  
  1333. BUGS 
  1334.     anyone note, if you find any tell me.
  1335.  
  1336. NOTES 
  1337.  
  1338. SEE ALSO 
  1339.     GD_fix2sfl, GD_fix2int
  1340.  
  1341. graphics3d.library/GD_int2fix            graphics3d.library/GD_int2fix
  1342.  
  1343. NAME
  1344.     GD_int2fix -- an entire one in a number in fix point converts.
  1345.  
  1346. SYNOPSIS 
  1347.     GD_int2fix(in, out) 
  1348.            A0  A1 
  1349.     LONG GD_int2fix(LONG *, LONG *);
  1350.  
  1351. FUNCTION 
  1352.     converts an entire one to 32bit in a number fix point in the format 
  1353.     demanded from the bookcase.  
  1354.  
  1355. INPUTS 
  1356.     in  = pointer to a 32 bit entire converting 
  1357.     out = pointer to a 32 bit entire where to put number in fix point 
  1358.           deliberate.  
  1359.  
  1360. RESULT 
  1361.     0 equal if to all ok if various from 0 not modified error and out.  
  1362.  
  1363. BUGS 
  1364.     anyone note, if you find any tell me.
  1365.  
  1366. NOTES 
  1367.  
  1368. SEE ALSO 
  1369.     GD_sfl2fix, GD_dfl2fix
  1370.  
  1371. graphics3d.library/GD_sfl2fix            graphics3d.library/GD_sfl2fix
  1372.  
  1373. NAME
  1374.     GD_sfl2fix -- a single float converts in a number in fix point.
  1375.  
  1376. SYNOPSIS 
  1377.     GD_sfl2fix(in, out) 
  1378.            A0  A1 
  1379.     LONG GD_sfl2fix(float *, LONG *);
  1380.  
  1381. FUNCTION 
  1382.     converts a number float in single precision in a number fix
  1383.     point in the format demanded from the bookcase.  
  1384.  
  1385. INPUTS 
  1386.     in  = pointer to number float to convert 
  1387.     out = pointer to entire to 32 bit where to put number in fix point 
  1388.           deliberate.  
  1389.  
  1390. RESULT 
  1391.     0 equal if to all ok if various from 0 not modified error and out.  
  1392.  
  1393. BUGS 
  1394.     anyone note, if you find any tell me.
  1395.  
  1396. NOTES 
  1397.  
  1398. SEE ALSO 
  1399.     GD_int2fix, GD_dfl2fix
  1400.  
  1401. graphics3d.library/GD_dfl2fix            graphics3d.library/GD_dfl2fix
  1402.  
  1403. NAME
  1404.     GD_dfl2fix -- a double float converts in a number in fix point.
  1405.  
  1406. SYNOPSIS 
  1407.     GD_dfl2fix(in, out) 
  1408.            A0  A1 
  1409.     LONG GD_dfl2fix(double *, LONG *);
  1410.  
  1411. FUNCTION 
  1412.     converts a number float in double precision in a number fix
  1413.     point in the format demanded from the bookcase.  
  1414.  
  1415. INPUTS 
  1416.     in  = pointer to number double float to convert 
  1417.     out = pointer to 32 bit inumber where to put number in fix point 
  1418.           deliberate.  
  1419.  
  1420. RESULT 
  1421.     0 equal if to all ok if various from 0 not modified error and out.  
  1422.  
  1423. BUGS 
  1424.     anyone note, if you find any tell me.
  1425.  
  1426. NOTES 
  1427.  
  1428. SEE ALSO 
  1429.     GD_sfl2fix, GD_int2fix
  1430.